Шаг 39 - Условное форматирование полей. Применение формул.

Прежде всего необходимо сказать, что в Crystal Reports определено два вида форматирования:
- абсолютное форматирование;
- условное форматирование.

В Шагах
Шаг 12 - Форматирование полей данных.
Шаг 13 - Форматирование полей данных далее.
Шаг 14 - Форматирование полей данных далее.

мы уже рассматривали форматирование полей. Так вот, все, о чем тогда говорилось, относится к абсолютному форматированию. Применение Эксперта выделения можно тоже, с некоторой натяжкой, отнести к абсолютному форматированию. Условное форматирование производится с помощью механизма формул.

Давайте сделаем с помощью формул то же, что делали в прошлом шаге. Выделяем поле, и в контекстном меню выбираем Format Field. Появляется уже знакомый нам диалог форматирования. Переходим на вкладку Font.

39_1.gif (7980 b)

Справа от поля Color находится кнопка

39_2.gif (293 b)

После ее нажатия появляется окно Format Editor.

39_3.gif (13841 b)

Внешне это окно очень похоже на редактор формул, однако это не так. Изменилось содержимое проводника функций и проводника операций. (Внимание! Сейчас мы вводим формулу, определяющую цвет шрифта). Содержимое проводников изменяется в зависимости от редактируемого свойства. Вводим формулу:

if{@Sum}>200 Then Red

Чтобы записать формулу, нажмите кнопку вверху слева (с изображением дискетки). Обратите внимание: рисунок на кнопке, вызвавшей редактор, изменилось:

39_4.gif (294 b)

Это свидетельствует о том, что к данному свойству применяется условное форматирование. Теперь нам надо изменить цвет фона. Переходим на вкладку Border окна форматирования, и повторяем наши действия для фона. В окне редактора вводим формулу:

if{@Sum}>200 then Yellow

и сохраняем ее.

Однако, в окне предварительного просмотра мы получим странный результат:

39_5.gif (3049 b)

Здесь проявилась важная особенность редактора форматирования. И если к полю применено условное форматирование, его абсолютное форматирование отменяется! Вообще-то в выражении if-else часть с else необязательна, но если ее нет, применяются установки по умолчанию. ( Свойства на вкладках игнорируются). Изменим формулу для фона:

if{@Sum}>200 Then 
    Yellow
else
   NoColor

Поверьте мне, теперь будет все нормально.


Автор Юрий Гвоздев.
Hosted by uCoz